<template>
  <view>
    <button @click="chooseVideo">上传视频</button>
    <text>上传进度：{{ progress }}%</text>
  </view>
</template>

<script>
import BigVideoUpload from '@/utils/BigVideoUpload'//引入封装的断点续传上传类

export default {
  data() {
    return {
      progress: 0,//上传进度百分比
    }
  },
  methods: {
    chooseVideo() {
      //选择视频
      uni.chooseVideo({
        sourceType: ['album', 'camera'],//来源相册或相机
        success: res => {//成功响应
          const filePath = res.tempFilePath//获取临时文件路径
          //获取文件信息（如大小）
          uni.getFileInfo({
            filePath,
            success: info => {
              //创建上传实例
              const uploader = new BigVideoUpload({
                url: 'http://localhost:3000/api/upload',//上传接口地址
                filePath,//文件路径
                byteLength: info.size,//总字节大小
                size: 1024 * 1024 * 5, // 5MB 分片
                fileName: 'video_' + Date.now() + '.mp4',//自定义文件名
                type: 'video/mp4',//MIME类型
                drowSpeed: percent => {
                  this.progress = percent//实时更新的上传速度
                },
                callback: res => {
                  //上传完成的回调
                  console.log('上传完成：', res)
                  uni.showToast({ title: res || '完成', icon: 'success' })
                }
              })
              uploader.startUpload()//启动上传
            }
          })
        }
      })
    }
  }
}
</script>
